package com.example.demofdfs.example.link;

/**
 * <p> 链表的数据结构.包括 add、get、set、remove、size、iterator 方法，是一个极为简单的链表实现。
 * <p> 大部分逻辑参考了, jdk 1.8 LinkedList 的源码.
 * 
 * @author chenyq
 * @email 805512500@qq.com
 * @version 2018-12-26
 * @param <E>
 */
public interface Links<E> extends Iterable<E> {

	/**
	 * 添加元素
	 * @param e
	 * @return
	 */
	boolean add(E e);
	
	/**
	 * 获取指定索引的元素
	 * @param index
	 * @return
	 */
	E get(int index);
	
	/**
	 * 移除指定索引的元素
	 * @param index
	 * @return
	 */
	E remove(int index);
	
	/**
	 * 修改指定索引的元素
	 * @param index
	 * @param e
	 * @return
	 */
	E set(int index, E e);
	
	/**
	 * 获取元素总数量
	 * @return
	 */
	int size();
}
